Data Indexing এবং Search Operation

Latest Technologies - ইলাস্টিকসার্চ (ElasticSearch) - Elasticsearch এর বেসিক অপারেশন | NCTB BOOK

Elasticsearch-এ Data Indexing এবং Search Operation

Elasticsearch-এ ডেটা ইন্ডেক্সিং এবং সার্চ অপারেশন হলো ডেটা ব্যবস্থাপনা এবং রিট্রিভালের মূল উপাদান। Elasticsearch ডকুমেন্ট ইনডেক্সিং-এর মাধ্যমে ডেটা সংরক্ষণ করে এবং সার্চ অপারেশন পরিচালনা করে দ্রুত এবং কার্যকরভাবে ডেটা রিট্রিভ করতে সক্ষম হয়। নিচে Elasticsearch-এ Data Indexing এবং Search Operation-এর ধাপ এবং উদাহরণ আলোচনা করা হলো।

১. Data Indexing (ডেটা ইন্ডেক্সিং)

  • ডেটা ইন্ডেক্সিং হলো ডকুমেন্টগুলো Elasticsearch-এ সংরক্ষণ করার প্রক্রিয়া। এটি JSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং ডেটাকে দ্রুত সার্চ এবং রিট্রিভ করার জন্য একটি ইন্ডেক্স তৈরি করে।
  • একটি ডকুমেন্ট ইন্ডেক্স করার জন্য HTTP POST বা PUT রিকোয়েস্ট ব্যবহার করা হয়।

ডকুমেন্ট ইন্ডেক্স করার উদাহরণ

POST /my-index/_doc/1
{
  "name": "John Doe",
  "age": 30,
  "occupation": "Software Engineer",
  "join_date": "2022-05-10"
}
  • এখানে:
    • /my-index হলো ইন্ডেক্সের নাম।
    • /_doc/1 হলো ডকুমেন্ট আইডি, যা ডকুমেন্টটিকে ইউনিকভাবে চিহ্নিত করে।
    • JSON ফরম্যাটে ডকুমেন্টের তথ্য প্রদান করা হয়েছে।
  • সফলভাবে ডকুমেন্ট ইন্ডেক্স করা হলে created স্ট্যাটাস সহ একটি রেসপন্স দেখা যাবে।

Bulk Indexing

  • একাধিক ডকুমেন্ট একসাথে ইন্ডেক্স করার জন্য Bulk API ব্যবহার করা হয়, যা বড় আকারের ডেটা দ্রুত ইন্ডেক্স করতে সহায়ক।
POST /_bulk
{ "index": { "_index": "my-index", "_id": "2" } }
{ "name": "Jane Doe", "age": 28, "occupation": "Data Scientist", "join_date": "2023-03-01" }
{ "index": { "_index": "my-index", "_id": "3" } }
{ "name": "Alice", "age": 35, "occupation": "Product Manager", "join_date": "2021-11-15" }
  • এখানে:
    • একাধিক ডকুমেন্ট /_bulk API ব্যবহার করে ইনডেক্স করা হচ্ছে।
    • প্রতিটি ডকুমেন্টে _index এবং _id নির্ধারণ করা হয়েছে, এবং ডকুমেন্টের তথ্য JSON ফরম্যাটে প্রদান করা হয়েছে।

২. Search Operation (সার্চ অপারেশন)

  • Elasticsearch-এ সার্চ অপারেশন HTTP GET বা POST রিকোয়েস্টের মাধ্যমে পরিচালিত হয়। সার্চের মাধ্যমে নির্দিষ্ট টার্ম, ফিল্ড, বা কিওয়ার্ড দিয়ে ডকুমেন্ট খুঁজে বের করা যায়।
  • Elasticsearch-এ সার্চ করার জন্য Query DSL (Domain Specific Language) ব্যবহার করা হয়, যা JSON ফরম্যাটে সার্চ রিকোয়েস্ট তৈরি করে।

বেসিক সার্চ অপারেশন

GET /my-index/_search
{
  "query": {
    "match": {
      "occupation": "Software Engineer"
    }
  }
}
  • এখানে:
    • /my-index/_search ইন্ডেক্সে সার্চ করা হচ্ছে।
    • "query" ফিল্ডে "match" কন্ডিশন ব্যবহার করে "occupation" ফিল্ডে "Software Engineer" টার্মের সাথে মিল খুঁজে বের করা হচ্ছে।
  • রেসপন্সে মিলে যাওয়া ডকুমেন্টগুলো JSON ফরম্যাটে রিটার্ন করা হবে।

ফিল্টার সহ সার্চ অপারেশন

GET /my-index/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "occupation": "Software Engineer" } }
      ],
      "filter": [
        { "range": { "age": { "gte": 25, "lte": 35 } } }
      ]
    }
  }
}
  • এখানে:
    • "bool" কন্ডিশন ব্যবহার করে "must" এবং "filter" ক্লজ দিয়ে সার্চ করা হয়েছে।
    • "must" ক্লজের মাধ্যমে "occupation" ফিল্ডে "Software Engineer" টার্ম খোঁজা হয়েছে।
    • "filter" ক্লজের মাধ্যমে "age" ফিল্ডে ২৫ থেকে ৩৫ বছরের মধ্যে থাকা ডকুমেন্টগুলো ফিল্টার করা হয়েছে।
  • সার্চ রেসপন্সে মিলে যাওয়া ডকুমেন্টগুলো বয়সের সীমাবদ্ধতার মধ্যেও থাকবে।

৩. Advanced Search Operation (উন্নত সার্চ অপারেশন)

  • Elasticsearch-এ উন্নত সার্চ অপারেশন করা যায়, যেমন কিওয়ার্ড সার্চ, মাল্টিপল কন্ডিশন, এবং অ্যাগ্রিগেশন।

মাল্টিপল কন্ডিশন সহ সার্চ

GET /my-index/_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "occupation": "Data Scientist" } },
        { "match": { "department": "Data Science" } }
      ]
    }
  }
}
  • এখানে "bool" কন্ডিশন ব্যবহার করে "must" ক্লজে একাধিক কন্ডিশন সেট করা হয়েছে, যাতে "occupation" এবং "department" উভয় ফিল্ডে মিল খুঁজে বের করা যায়।

অ্যাগ্রিগেশন (Aggregation)

  • Elasticsearch-এ সার্চ রেসপন্সে অ্যাগ্রিগেশন ব্যবহার করে ডেটা বিশ্লেষণ করা যায়, যেমন গড় (average), সর্বাধিক (max), সর্বনিম্ন (min), ইত্যাদি।
GET /my-index/_search
{
  "aggs": {
    "average_age": {
      "avg": {
        "field": "age"
      }
    }
  },
  "size": 0
}
  • এখানে:
    • "aggs" ফিল্ডে "average_age" নামক একটি অ্যাগ্রিগেশন তৈরি করা হয়েছে, যা "age" ফিল্ডের গড় হিসাব করবে।
    • "size": 0 দিয়ে সার্চ রেসপন্সে ডকুমেন্ট না দেখিয়ে শুধুমাত্র অ্যাগ্রিগেশন রেসপন্স দেখানো হয়েছে।

৪. Searching with Sorting and Pagination

সার্চে সর্চিং (Sorting) ব্যবহার করা

  • সার্চ রেসপন্স সর্চ করতে "sort" ফিল্ড ব্যবহার করা হয়:
GET /my-index/_search
{
  "query": {
    "match": {
      "occupation": "Software Engineer"
    }
  },
  "sort": [
    { "age": { "order": "asc" } }
  ]
}
  • এখানে "age" ফিল্ডের উপর ভিত্তি করে ডকুমেন্টগুলো এসেন্ডিং (asc) অর্ডারে সর্চ করা হয়েছে।

পেজিনেশন (Pagination) ব্যবহার করা

  • পেজিনেশন করার জন্য "from" এবং "size" প্যারামিটার ব্যবহার করা হয়:
GET /my-index/_search
{
  "query": {
    "match": {
      "occupation": "Data Scientist"
    }
  },
  "from": 0,
  "size": 5
}
  • "from" প্যারামিটার সার্চ রেসপন্সে কোন ডকুমেন্ট থেকে শুরু হবে তা নির্দেশ করে এবং "size" প্যারামিটার কতগুলি ডকুমেন্ট প্রদর্শিত হবে তা নির্ধারণ করে।

উপসংহার

Elasticsearch-এ Data Indexing এবং Search Operation খুবই দ্রুত এবং কার্যকরীভাবে RESTful API ব্যবহার করে সম্পন্ন করা যায়। ডকুমেন্ট ইনডেক্স করে ডেটা সংরক্ষণ, ফিল্টার এবং সার্চ করে ডেটা রিট্রিভ করা Elasticsearch-এ সহজ এবং স্কেলেবল। উন্নত সার্চ অপারেশন এবং অ্যাগ্রিগেশন ব্যবহার করে ডেটা বিশ্লেষণ আরও সহজে করা যায়, যা Elasticsearch-কে একটি শক্তিশালী সার্চ এবং অ্যানালিটিক্স ইঞ্জিন হিসেবে প্রতিষ্ঠিত করে।

Content added By

আরও দেখুন...

Promotion